#include <stdio.h>
#include <stdbool.h>

// 测试框架，如果算是框架的话
#define test_it(func, need_run, ...) \
__attribute__((constructor(__LINE__ + 1000))) void func(void) { \
    if (need_run) { printf("\n---- %s stdout ----\n", __FUNCTION__); __VA_ARGS__ } \
    else { printf("\n---- %s skip ----\n", __FUNCTION__); } }
int main(void) { return 0; }

// 测试用例
test_it(test_hello, false, {
    printf("hello, world!\n");
})

test_it(test_first, true, {
    printf("first of all!\n");
})

test_it(test_second, true, {

    void display(int *a, int len) {
        for (int i = 0; i < len; i++) {
            printf("%d ", a[i]);
        }
    }

    int a[] = {1, 2, 3};
    display(a, sizeof(a) / sizeof(a[0]));
})